#ifndef ESTADISTICO_H_
#define ESTADISTICO_H_

#include <vector>
#include <map>
#include "Comunicador.h"
#include "Receptor.h"
#include "Trasmisor.h"
#include "SIGINT_Handler.h"
#include "SIGUSR1_Handler.h"

class Estadistico {
	public:
		Estadistico(int cantidadJugadores);
		~Estadistico();
		int correr();
		void mostrarPuntaje(); 
		
	private:
		int cantJugadores;
		std::string ganadorRonda;
		Comunicador *aPerdedores, *dePerdedores, *aCoord, *deCoord, *aPerdSinc;
		std::map<std::string,int> puntaje;
		SIGINT_Handler sigint_handler;
		SIGUSR1_Handler sigusr_handler;
		
		void recibirOKPerdedores();
		void actualizarPuntaje(int perdedor);
		int terminoJuego();
		void avisarPerdedores(Comunicador *canal, int tipoAviso);
		int obtenerPerdedor(int ganador);
		void cerrarCanales();
};

#endif /* ESTADISTICO_H_ */
